The present disclosure relates generally to error detection and correction and more particularly to an error correction and detection technique using codes of a particular length and invariant under rotations of a certain size.
In digital technology, error detection and correction of errors is very important. In a world reliant on digital data it is critical to process as well as send and receive reliable information. Errors can occur due to a number of factors such as channel noise during the communication between devices. There are many ways to accomplish error detection and correction using so called error-correcting codes.
In some embodiments, data is read from a two dimensional array and it is not possible to distinguish between an upper and a lower part of the array when the data is read. Similarly, it may not be possible to distinguish between arrays that have been rotated 90 degrees, or even some other angle. A situation like this one occurs, for instance, when data is read using a camera but the exact angle of the camera cannot be determined.
A solution to this problem involves declaring equivalent arrays that have been rotated a predetermined angle or amount. However, the situation gets more complex in the presence of errors, a situation that is nearly always present in modern digital technology. For that reason, it is desirable to design a code that is both invariant under rotation and having error correcting and detecting properties that are tailored to the channel in question.